<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // "use strict"
        // function foo(){
        //     console.log(this)   //严格模式下，this指向undefined
        // }

        // function bar(){
        //     "use strict"
        //     console.log(this)   //严格模式下，this指向undefined
        // }

        // (function (){
        //     console.log("在立即调用函数中：",this)
        // })();   //全局严格模式下立即调用函数中也是undefined

        // (function (){
        //     "use strict"
        //     console.log("在行内严格模式下立即调用函数中：",this)   //严格模式下是undefined
        //     foo();  //此时就是正常的window对象了(只有全局严格模式或者函数体出于严格模式才会影响默认绑定)
        //     bar();  // undefined 不出所料，只有在函数体内部的严格模式和全局严格模式会影响，在严格模式中调用不会影响,
        //     function baz(){
        //         console.log(this)
        //     }
        //     baz();  // undefined 定义在严格模式下的也会影响
        // })()

        function a(xx) {
            this.x = xx;
            return this
        };
        var x = a(5);
        var y = a(6);

        console.log(x.x)  // undefined
        console.log(y.x)  // 6
    </script>
</body>

</html>